package com.ssy.lingxi.member.merchant.service.paas;

import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.member.merchant.api.model.vo.paas.MemberConfigQueryVO;
import com.ssy.lingxi.member.merchant.api.model.vo.paas.MemberConfigVO;
import com.ssy.lingxi.member.merchant.api.model.vo.paas.MemberRuleFeignVO;

import java.util.List;

/**
 * 会员注册资料配置
 * @author 万宁
 * @date 2020-05-29
 * @version 2.0.0
 */
public interface IPaasMemberConfigService {

    /**
     * 新增会员注册资料配置
     * @param configVO 接口参数
     * @return 新增的会员注册资料配置
     */
    Wrapper<MemberConfigQueryVO> addMemberConfig(MemberConfigVO configVO);


    /**
     * 修改会员注册资料配置
     * @param configVO 接口参数
     * @return 修改后的会员注册资料配置
     */
    Wrapper<MemberConfigQueryVO> updateMemberConfig(MemberConfigVO configVO);


    /**
     * 分页查询会员注册资料配置列表
     * @param pageVO 接口参数
     * @return 注册资料列表
     */
    Wrapper<PageData<MemberConfigQueryVO>> pageMemberConfig(PageVO pageVO);

    /**
     * 删除会员注册资料配置
     * @param configVO 接口参数
     * @return 删除结果
     */
    Wrapper<Void> deleteMemberConfig(MemberConfigVO configVO);

    /**
     * 更改会员注册资料配置状态
     * @param configVO 接口参数
     * @return 更新后的会员组成资料
     */
    Wrapper<MemberConfigQueryVO> updateMemberConfigStatus(MemberConfigVO configVO);

    /**
     * 新增或修改平台规则配置
     * @param rules 平台规则
     * @return 操作结果
     */
    Wrapper<Void> updateOrInsertMemberRules(List<MemberRuleFeignVO> rules);
}
